The Jargon Lexicon
= H =
=====
h: [from SF fandom] A method of `marking' common words,
i.e., calling attention to the fact that they are being used in a
nonstandard, ironic, or humorous way. Originated in the fannish
catchphrase "Bheer is the One True Ghod!" from decades ago.
H-infix marking of `Ghod' and other words spread into the 1960s
counterculture via underground comix, and into early hackerdom
either from the counterculture or from SF fandom (the three
overlapped heavily at the time). More recently, the h infix has
become an expected feature of benchmark names (Dhrystone,
Rhealstone, etc.); this is prob. patterning on the original
Whetstone (the name of a laboratory) but influenced by the
fannish/counterculture h infix.
ha ha only serious: [from SF fandom, orig. as mutation of
HHOK, `Ha Ha Only Kidding'] A phrase (often seen abbreviated as
HHOS) that aptly captures the flavor of much hacker discourse.
Applied especially to parodies, absurdities, and ironic jokes that
are both intended and perceived to contain a possibly disquieting
amount of truth, or truths that are constructed on in-joke and
self-parody. This lexicon contains many examples of
ha-ha-only-serious in both form and content. Indeed, the entirety
of hacker culture is often perceived as ha-ha-only-serious by
hackers themselves; to take it either too lightly or too seriously
marks a person as an outsider, a {wannabee}, or in {larval
stage}. For further enlightenment on this subject, consult any Zen
master. See also {{Humor, Hacker}}, and {AI koans}.
hack: 1. n. Originally, a quick job that produces what is
needed, but not well. 2. n. An incredibly good, and perhaps very
time-consuming, piece of work that produces exactly what is needed.
3. vt. To bear emotionally or physically. "I can't hack this
heat!" 4. vt. To work on something (typically a program). In an
immediate sense: "What are you doing?" "I'm hacking TECO."
In a general (time-extended) sense: "What do you do around here?"
"I hack TECO." More generally, "I hack `foo'" is roughly
equivalent to "`foo' is my major interest (or project)". "I
hack solid-state physics." See {Hacking X for Y}. 5. vt. To
pull a prank on. See sense 2 and {hacker} (sense 5). 6. vi. To
interact with a computer in a playful and exploratory rather than
goal-directed way. "Whatcha up to?" "Oh, just hacking."
7. n. Short for {hacker}. 8. See {nethack}. 9. [MIT] v. To
explore the basements, roof ledges, and steam tunnels of a large,
institutional building, to the dismay of Physical Plant workers and
(since this is usually performed at educational institutions) the
Campus Police. This activity has been found to be eerily similar
to playing adventure games such as Dungeons and Dragons and
{Zork}. See also {vadding}.
Constructions on this term abound. They include `happy hacking'
(a farewell), `how's hacking?' (a friendly greeting among
hackers) and `hack, hack' (a fairly content-free but friendly
comment, often used as a temporary farewell). For more on this
totipotent term see "{The Meaning of `Hack'}". See
also {neat hack}, {real hack}.
hack attack: n. [poss. by analogy with `Big Mac Attack'
from ads for the McDonald's fast-food chain; the variant `big
hack attack' is reported] Nearly synonymous with {hacking run},
though the latter more strongly implies an all-nighter.
hack mode: n. 1. What one is in when hacking, of course.
2. More specifically, a Zen-like state of total focus on The
Problem that may be achieved when one is hacking (this is why every
good hacker is part mystic). Ability to enter such concentration
at will correlates strongly with wizardliness; it is one of the
most important skills learned during {larval stage}. Sometimes
amplified as `deep hack mode'.
Being yanked out of hack mode (see {priority interrupt}) may be
experienced as a physical shock, and the sensation of being in hack
mode is more than a little habituating. The intensity of this
experience is probably by itself sufficient explanation for the
existence of hackers, and explains why many resist being promoted
out of positions where they can code. See also {cyberspace}
(sense 2).
Some aspects of hackish etiquette will appear quite odd to an
observer unaware of the high value placed on hack mode. For
example, if someone appears at your door, it is perfectly okay to
hold up a hand (without turning one's eyes away from the screen) to
avoid being interrupted. One may read, type, and interact with the
computer for quite some time before further acknowledging the
other's presence (of course, he or she is reciprocally free to
leave without a word). The understanding is that you might be in
{hack mode} with a lot of delicate {state} (sense 2) in your
head, and you dare not {swap} that context out until you have
reached a good point to pause. See also {juggling eggs}.
hack on: vt. To {hack}; implies that the subject is some
pre-existing hunk of code that one is evolving, as opposed to
something one might {hack up}.
hack together: vt. To throw something together so it will
work. Unlike `kluge together' or {cruft together}, this does
not necessarily have negative connotations.
hack up: vt. To {hack}, but generally implies that the
result is a hack in sense 1 (a quick hack). Contrast this with
{hack on}. To `hack up on' implies a {quick-and-dirty}
modification to an existing system. Contrast {hacked up};
compare {kluge up}, {monkey up}, {cruft together}.
hack value: n. Often adduced as the reason or motivation for
expending effort toward a seemingly useless goal, the point being
that the accomplished goal is a hack. For example, MacLISP had
features for reading and printing Roman numerals, which were
installed purely for hack value. See {display hack} for one
method of computing hack value, but this cannot really be
explained, only experienced. As Louis Armstrong once said when
asked to explain jazz: "Man, if you gotta ask you'll never know."
(Feminists please note Fats Waller's explanation of rhythm: "Lady,
if you got to ask you ain't got it.")
hacked off: adj. [analogous to `pissed off'] Said of
system administrators who have become annoyed, upset, or touchy
owing to suspicions that their sites have been or are going to be
victimized by crackers, or used for inappropriate, technically
illegal, or even overtly criminal activities. For example, having
unreadable files in your home directory called `worm',
`lockpick', or `goroot' would probably be an effective (as well
as impressively obvious and stupid) way to get your sysadmin hacked
off at you.
It has been pointed out that there is precedent for this usage in
U.S. Navy slang, in which officers under discipline are sometimes
said to be "in hack" and one may speak of "hacking off the C.O.".
hacked up: adj. Sufficiently patched, kluged, and tweaked
that the surgical scars are beginning to crowd out normal tissue
(compare {critical mass}). Not all programs that are hacked
become `hacked up'; if modifications are done with some eye to
coherence and continued maintainability, the software may emerge
better for the experience. Contrast {hack up}.
hacker: n. [originally, someone who makes furniture with an
axe] 1. A person who enjoys exploring the details of programmable
systems and how to stretch their capabilities, as opposed to most
users, who prefer to learn only the minimum necessary. 2. One who
programs enthusiastically (even obsessively) or who enjoys
programming rather than just theorizing about programming. 3. A
person capable of appreciating {hack value}. 4. A person who is
good at programming quickly. 5. An expert at a particular program,
or one who frequently does work using it or on it; as in `a UNIX
hacker'. (Definitions 1 through 5 are correlated, and people who
fit them congregate.) 6. An expert or enthusiast of any kind. One
might be an astronomy hacker, for example. 7. One who enjoys the
intellectual challenge of creatively overcoming or circumventing
limitations. 8. [deprecated] A malicious meddler who tries to
discover sensitive information by poking around. Hence `password
hacker', `network hacker'. The correct term is {cracker}.
The term `hacker' also tends to connote membership in the global
community defined by the net (see {network, the} and
{Internet address}). It also implies that the person described
is seen to subscribe to some version of the hacker ethic (see
{hacker ethic, the}).
It is better to be described as a hacker by others than to describe
oneself that way. Hackers consider themselves something of an
elite (a meritocracy based on ability), though one to which new
members are gladly welcome. There is thus a certain ego
satisfaction to be had in identifying yourself as a hacker (but if
you claim to be one and are not, you'll quickly be labeled
{bogus}). See also {wannabee}.
hacker ethic, the: n. 1. The belief that information-sharing
is a powerful positive good, and that it is an ethical duty of
hackers to share their expertise by writing free software and
facilitating access to information and to computing resources
wherever possible. 2. The belief that system-cracking for fun and
exploration is ethically OK as long as the cracker commits no
theft, vandalism, or breach of confidentiality.
Both of these normative ethical principles are widely, but by no
means universally, accepted among hackers. Most hackers subscribe
to the hacker ethic in sense 1, and many act on it by writing and
giving away free software. A few go further and assert that
*all* information should be free and *any* proprietary
control of it is bad; this is the philosophy behind the {GNU}
project.
Sense 2 is more controversial: some people consider the act of
cracking itself to be unethical, like breaking and entering. But
the belief that `ethical' cracking excludes destruction at least
moderates the behavior of people who see themselves as `benign'
crackers (see also {samurai}). On this view, it may be one of
the highest forms of hackerly courtesy to (a) break into a system,
and then (b) explain to the sysop, preferably by email from a
{superuser} account, exactly how it was done and how the hole
can be plugged -- acting as an unpaid (and unsolicited) {tiger
team}.
The most reliable manifestation of either version of the hacker
ethic is that almost all hackers are actively willing to share
technical tricks, software, and (where possible) computing
resources with other hackers. Huge cooperative networks such as
{Usenet}, {FidoNet} and Internet (see {Internet address})
can function without central control because of this trait; they
both rely on and reinforce a sense of community that may be
hackerdom's most valuable intangible asset.
hacking run: n. [analogy with `bombing run' or `speed
run'] A hack session extended long outside normal working times,
especially one longer than 12 hours. May cause you to `change
phase the hard way' (see {phase}).
Hacking X for Y: n. [ITS] Ritual phrasing of part of the
information which ITS made publicly available about each user.
This information (the INQUIR record) was a sort of form in which
the user could fill out various fields. On display, two of these
fields were always combined into a project description of the form
"Hacking X for Y" (e.g., `"Hacking perceptrons for
Minsky"'). This form of description became traditional and has
since been carried over to other systems with more general
facilities for self-advertisement (such as UNIX {plan file}s).
Hackintosh: n. 1. An Apple Lisa that has been hacked into
emulating a Macintosh (also called a `Mac XL'). 2. A Macintosh
assembled from parts theoretically belonging to different models in
the line.
hackish: /hak'ish/ adj. (also {hackishness} n.) 1. Said
of something that is or involves a hack. 2. Of or pertaining to
hackers or the hacker subculture. See also {true-hacker}.
hackishness: n. The quality of being or involving a hack.
This term is considered mildly silly. Syn. {hackitude}.
hackitude: n. Syn. {hackishness}; this word is considered
sillier.
hair: n. [back-formation from {hairy}] The complications
that make something hairy. "Decoding {TECO} commands requires
a certain amount of hair." Often seen in the phrase `infinite
hair', which connotes extreme complexity. Also in `hairiferous'
(tending to promote hair growth): "GNUMACS elisp encourages lusers
to write complex editing modes." "Yeah, it's pretty hairiferous
all right." (or just: "Hair squared!")
hairball: n. [Fidonet] A large batch of messages that a
store-and-forward network is failing to forward when it should.
Often used in the phrase "Fido coughed up a hairball today",
meaning that the stuck messages have just come unstuck, producing a
flood of mail where there had previously been drought.
hairy: adj. 1. Annoyingly complicated. "{DWIM} is
incredibly hairy." 2. Incomprehensible. "{DWIM} is
incredibly hairy." 3. Of people, high-powered, authoritative,
rare, expert, and/or incomprehensible. Hard to explain except in
context: "He knows this hairy lawyer who says there's nothing to
worry about." See also {hirsute}.
A well-known result in topology called the Brouwer Fixed-Point
Theorem states that any continuous transformation of a surface into
itself has at least one fixed point. Mathematically literate
hackers tend to associate the term `hairy' with the informal
version of this theorem; "You can't comb a hairy ball smooth."
The adjective `long-haired' is well-attested to have been in
slang use among scientists and engineers during the early 1950s; it
was equivalent to modern `hairy' senses 1 and 2, and was very
likely ancestral to the hackish use. In fact the noun
`long-hair' was at the time used to describe a person satisfying
sense 3. Both senses probably passed out of use when long hair
was adopted as a signature trait by the 1960s counterculture,
leaving hackish `hairy' as a sort of stunted mutant relic.
HAKMEM: /hak'mem/ n. MIT AI Memo 239 (February 1972). A
legendary collection of neat mathematical and programming hacks
contributed by many people at MIT and elsewhere. (The title of the
memo really is "HAKMEM", which is a 6-letterism for `hacks
memo'.) Some of them are very useful techniques, powerful
theorems, or interesting unsolved problems, but most fall into the
category of mathematical and computer trivia. Here is a sampling
of the entries (with authors), slightly paraphrased:
Item 41 (Gene Salamin): There are exactly 23,000 prime numbers less
than 2^18.
Item 46 (Rich Schroeppel): The most *probable* suit
distribution in bridge hands is 4-4-3-2, as compared to 4-3-3-3,
which is the most *evenly* distributed. This is because the
world likes to have unequal numbers: a thermodynamic effect saying
things will not be in the state of lowest energy, but in the state
of lowest disordered energy.
Item 81 (Rich Schroeppel): Count the magic squares of order 5
(that is, all the 5-by-5 arrangements of the numbers from 1 to 25
such that all rows, columns, and diagonals add up to the same
number). There are about 320 million, not counting those that
differ only by rotation and reflection.
Item 154 (Bill Gosper): The myth that any given programming
language is machine independent is easily exploded by computing the
sum of powers of 2. If the result loops with period = 1
with sign +, you are on a sign-magnitude machine. If the
result loops with period = 1 at -1, you are on a
twos-complement machine. If the result loops with period greater
than 1, including the beginning, you are on a ones-complement
machine. If the result loops with period greater than 1, not
including the beginning, your machine isn't binary -- the pattern
should tell you the base. If you run out of memory, you are on a
string or bignum system. If arithmetic overflow is a fatal error,
some fascist pig with a read-only mind is trying to enforce machine
independence. But the very ability to trap overflow is machine
dependent. By this strategy, consider the universe, or, more
precisely, algebra: Let X = the sum of many powers of 2 =
...111111 (base 2). Now add X to itself:
X + X = ...111110. Thus, 2X = X - 1, so
X = -1. Therefore algebra is run on a machine (the
universe) that is two's-complement.
Item 174 (Bill Gosper and Stuart Nelson): 21963283741 is the only
number such that if you represent it on the {PDP-10} as both an
integer and a floating-point number, the bit patterns of the two
representations are identical.
Item 176 (Gosper): The "banana phenomenon" was encountered when
processing a character string by taking the last 3 letters typed
out, searching for a random occurrence of that sequence in the
text, taking the letter following that occurrence, typing it out,
and iterating. This ensures that every 4-letter string output
occurs in the original. The program typed BANANANANANANANA.... We
note an ambiguity in the phrase, "the Nth occurrence of." In one
sense, there are five 00's in 0000000000; in another, there are
nine. The editing program TECO finds five. Thus it finds only the
first ANA in BANANA, and is thus obligated to type N next. By
Murphy's Law, there is but one NAN, thus forcing A, and thus a
loop. An option to find overlapped instances would be useful,
although it would require backing up N - 1 characters before
seeking the next N-character string.
note: This last item refers to a {Dissociated Press}
implementation. See also {banana problem}.
HAKMEM also contains some rather more complicated mathematical and
technical items, but these examples show some of its fun flavor.
hakspek: /hak'speek/ n. A shorthand method of spelling
found on many British academic bulletin boards and {talker
system}s. Syllables and whole words in a sentence are replaced by
single ASCII characters the names of which are phonetically similar
or equivalent, while multiple letters are usually dropped. Hence,
`for' becomes `4'; `two', `too', and `to' become `2';
`ck' becomes `k'. "Before I see you tomorrow" becomes "b4 i
c u 2moro". First appeared in London about 1986, and was probably
caused by the slowness of available talker systems, which operated
on archaic machines with outdated operating systems and no standard
methods of communication. Has become rarer since. See also
{talk mode}.
hammer: vt. Commonwealth hackish syn. for {bang on}.
hamster: n. 1. [Fairchild] A particularly slick little piece
of code that does one thing well; a small, self-contained hack.
The image is of a hamster {happily} spinning its exercise wheel.
2. A tailless mouse; that is, one with an infrared link to a
receiver on the machine, as opposed to the conventional cable.
3. [UK] Any item of hardware made by Amstrad, a company famous for
its cheap plastic PC-almost-compatibles.
hand cruft: vt. [pun on `hand craft'] See {cruft}, sense
3.
hand-hacking: n. 1. The practice of translating {hot
spot}s from an {HLL} into hand-tuned assembler, as opposed to
trying to coerce the compiler into generating better code. Both
the term and the practice are becoming uncommon. See {tune},
{bum}, {by hand}; syn. with v. {cruft}. 2. More
generally, manual construction or patching of data sets that would
normally be generated by a translation utility and interpreted by
another program, and aren't really designed to be read or modified
by humans.
hand-roll: v. [from obs. mainstream slang `hand-rolled' in
opposition to `ready-made', referring to cigarettes] To
perform a normally automated software installation or configuration
process {by hand}; implies that the normal process failed due to
bugs in the configurator or was defeated by something exceptional
in the local environment. "The worst thing about being a gateway
between four different nets is having to hand-roll a new sendmail
configuration every time any of them upgrades."
handle: n. 1. [from CB slang] An electronic pseudonym; a
`nom de guerre' intended to conceal the user's true identity.
Network and BBS handles function as the same sort of simultaneous
concealment and display one finds on Citizen's Band radio, from
which the term was adopted. Use of grandiose handles is
characteristic of {warez d00dz}, {cracker}s, {weenie}s,
{spod}s, and other lower forms of network life; true hackers
travel on their own reputations rather than invented legendry.
Compare {nick}. 2. [Mac] A pointer to a pointer to
dynamically-allocated memory; the extra level of indirection allows
on-the-fly memory compaction (to cut down on fragmentation) or
aging out of unused resources, with minimal impact on the (possibly
multiple) parts of the larger program containing references to the
allocated memory. Compare {snap} (to snap a handle would defeat
its purpose); see also {aliasing bug}, {dangling
pointer}.
handshaking: n. Hardware or software activity designed to
start or keep two machines or programs in synchronization as they
{do protocol}. Often applied to human activity; thus, a hacker
might watch two people in conversation nodding their heads to
indicate that they have heard each others' points and say "Oh,
they're handshaking!". See also {protocol}.
handwave: [poss. from gestures characteristic of stage
magicians] 1. v. To gloss over a complex point; to distract a
listener; to support a (possibly actually valid) point with
blatantly faulty logic. 2. n. The act of handwaving. "Boy, what
a handwave!"
If someone starts a sentence with "Clearly..." or
"Obviously..." or "It is self-evident that...", it is
a good bet he is about to handwave (alternatively, use of these
constructions in a sarcastic tone before a paraphrase of someone
else's argument suggests that it is a handwave). The theory behind
this term is that if you wave your hands at the right moment, the
listener may be sufficiently distracted to not notice that what you
have said is {bogus}. Failing that, if a listener does object,
you might try to dismiss the objection with a wave of your hand.
The use of this word is often accompanied by gestures: both hands
up, palms forward, swinging the hands in a vertical plane pivoting
at the elbows and/or shoulders (depending on the magnitude of the
handwave); alternatively, holding the forearms in one position
while rotating the hands at the wrist to make them flutter. In
context, the gestures alone can suffice as a remark; if a speaker
makes an outrageously unsupported assumption, you might simply wave
your hands in this way, as an accusation, far more eloquent than
words could express, that his logic is faulty.
hang: v. 1. To wait for an event that will never occur.
"The system is hanging because it can't read from the crashed
drive". See {wedged}, {hung}. 2. To wait for some event to
occur; to hang around until something happens. "The program
displays a menu and then hangs until you type a character."
Compare {block}. 3. To attach a peripheral device, esp. in
the construction `hang off': "We're going to hang another tape
drive off the file server." Implies a device attached with
cables, rather than something that is strictly inside the machine's
chassis.
Hanlon's Razor: prov. A corollary of {Finagle's Law},
similar to Occam's Razor, that reads "Never attribute to malice
that which can be adequately explained by stupidity." The
derivation of the common title Hanlon's Razor is unknown; a similar
epigram has been attributed to William James. Quoted here because
it seems to be a particular favorite of hackers, often showing up
in {sig block}s, {fortune cookie} files and the login banners
of BBS systems and commercial networks. This probably reflects the
hacker's daily experience of environments created by
well-intentioned but short-sighted people. Compare {Sturgeon's
Law}.
happily: adv. Of software, used to emphasize that a program
is unaware of some important fact about its environment, either
because it has been fooled into believing a lie, or because it
doesn't care. The sense of `happy' here is not that of elation,
but rather that of blissful ignorance. "The program continues to
run, happily unaware that its output is going to /dev/null." Also
used to suggest that a program or device would really rather be
doing something destructive, and is being given an opportunity to
do so. "If you enter a `o' here instead of a zero, the program
will happily erase all your data."
haque: /hak/ n. [Usenet] Variant spelling of {hack},
used only for the noun form and connoting an {elegant}
hack. that is a {hack} in sense 2.
hard boot: n. See {boot}.
hardcoded: adj. 1. Said of data inserted directly into a
program, where it cannot be easily modified, as opposed to data in
some {profile}, resource (see {de-rezz} sense 2), or
environment variable that a {user} or hacker can easily modify.
2. In C, this is esp. applied to use of a literal instead of a
`#define' macro (see {magic number}).
hardwarily: /hard-weir'*-lee/ adv. In a way pertaining to
hardware. "The system is hardwarily unreliable." The adjective
`hardwary' is *not* traditionally used, though it has
recently been reported from the U.K. See {softwarily}.
hardwired: adj. 1. In software, syn. for {hardcoded}.
2. By extension, anything that is not modifiable, especially in the
sense of customizable to one's particular needs or tastes.
has the X nature: [seems to derive from Zen Buddhist koans
of the form "Does an X have the Buddha-nature?"] adj. Common
hacker construction for `is an X', used for humorous emphasis.
"Anyone who can't even use a program with on-screen help embedded
in it truly has the {loser} nature!" See also {the X that
can be Y is not the true X}.
hash bucket: n. A notional receptacle, a set of which might
be used to apportion data items for sorting or lookup purposes.
When you look up a name in the phone book (for example), you
typically hash it by extracting its first letter; the hash buckets
are the alphabetically ordered letter sections. This term is used
as techspeak with respect to code that uses actual hash functions;
in jargon, it is used for human associative memory as well. Thus,
two things `in the same hash bucket' are more difficult to
discriminate, and may be confused. "If you hash English words
only by length, you get too many common grammar words in the first
couple of hash buckets." Compare {hash collision}.
hash collision: n. [from the techspeak] (var. `hash
clash') When used of people, signifies a confusion in associative
memory or imagination, especially a persistent one (see
{thinko}). True story: One of us [ESR] was once on the phone
with a friend about to move out to Berkeley. When asked what he
expected Berkeley to be like, the friend replied: "Well, I have
this mental picture of naked women throwing Molotov cocktails, but
I think that's just a collision in my hash tables." Compare
{hash bucket}.
hat: n. Common (spoken) name for the circumflex (`^', ASCII
1011110) character. See {ASCII} for other synonyms.
HCF: /H-C-F/ n. Mnemonic for `Halt and Catch Fire', any
of several undocumented and semi-mythical machine instructions with
destructive side-effects, supposedly included for test purposes on
several well-known architectures going as far back as the IBM 360.
The MC6800 microprocessor was the first for which an HCF opcode
became widely known. This instruction caused the processor to
{toggle} a subset of the bus lines as rapidly as it could; in
some configurations this could actually cause lines to burn up.
heads down: [Sun] adj. Concentrating, usually so heavily and
for so long that everything outside the focus area is missed. See
also {hack mode} and {larval stage}, although this mode is
hardly confined to fledgling hackers.
heartbeat: n. 1. The signal emitted by a Level 2 Ethernet
transceiver at the end of every packet to show that the
collision-detection circuit is still connected. 2. A periodic
synchronization signal used by software or hardware, such as a bus
clock or a periodic interrupt. 3. The `natural' oscillation
frequency of a computer's clock crystal, before frequency division
down to the machine's clock rate. 4. A signal emitted at regular
intervals by software to demonstrate that it is still alive.
Sometimes hardware is designed to reboot the machine if it stops
hearing a heartbeat. See also {breath-of-life packet}.
heatseeker: n. [IBM] A customer who can be relied upon to
buy, without fail, the latest version of an existing product (not
quite the same as a member of the {lunatic fringe}). A 1993
example of a heatseeker is someone who, owning a 286 PC and Windows
3.0, goes out and buys Windows 3.1 (which offers no worthwhile
benefits unless you have a 386). If all customers were
heatseekers, vast amounts of money could be made by just fixing the
bugs in each release (n) and selling it to them as release (n+1).
heavy metal: n. [Cambridge] Syn. {big iron}.
heavy wizardry: n. Code or designs that trade on a
particularly intimate knowledge or experience of a particular
operating system or language or complex application interface.
Distinguished from {deep magic}, which trades more on arcane
*theoretical* knowledge. Writing device drivers is heavy
wizardry; so is interfacing to {X} (sense 2) without a toolkit.
Esp. found in source-code comments of the form "Heavy wizardry
begins here". Compare {voodoo programming}.
heavyweight: adj. High-overhead; {baroque};
code-intensive; featureful, but costly. Esp. used of
communication protocols, language designs, and any sort of
implementation in which maximum generality and/or ease of
implementation has been pushed at the expense of mundane
considerations such as speed, memory utilization, and startup time.
{EMACS} is a heavyweight editor; {X} is an *extremely*
heavyweight window system. This term isn't pejorative, but one
hacker's heavyweight is another's {elephantine} and a third's
{monstrosity}. Oppose `lightweight'. usage: now borders on
techspeak, especially in the compound `heavyweight process'.
heisenbug: /hi:'zen-buhg/ n. [from Heisenberg's
Uncertainty Principle in quantum physics] A bug that disappears or
alters its behavior when one attempts to probe or isolate it.
(This usage is not even particularly fanciful; the use of a
debugger sometimes alters a program's operating environment
significantly enough that buggy code, such as that which relies on
the values of uninitialized memory, behaves quite differently.)
Antonym of {Bohr bug}; see also {mandelbug},
{schroedinbug}. In C, nine out of ten heisenbugs result from
uninitialized auto variables, {fandango on core} phenomena
(esp. lossage related to corruption of the malloc {arena}) or
errors that {smash the stack}.
Helen Keller mode: n. 1. State of a hardware or software
system that is deaf, dumb, and blind, i.e., accepting no input and
generating no output, usually due to an infinite loop or some other
excursion into {deep space}. (Unfair to the real Helen Keller,
whose success at learning speech was triumphant.) See also {go
flatline}, {catatonic}. 2. On IBM PCs under DOS, refers to a
specific failure mode in which a screen saver has kicked in over an
{ill-behaved} application which bypasses the very interrupts the
screen saver watches for activity. Your choices are to try to get
from the program's current state through a successful save-and-exit
without being able to see what you're doing, or to re-boot the
machine. This isn't (strictly speaking) a crash.
hello, sailor!: interj. Occasional West Coast equivalent of
{hello, world}; seems to have originated at SAIL, later
associated with the game {Zork} (which also included "hello,
aviator" and "hello, implementor"). Originally from the
traditional hooker's greeting to a swabbie fresh off the boat, of
course.
hello, wall!: excl. See {wall}.
hello, world: interj. 1. The canonical minimal test message
in the C/UNIX universe. 2. Any of the minimal programs that emit
this message. Traditionally, the first program a C coder is
supposed to write in a new environment is one that just prints
"hello, world" to standard output (and indeed it is the first
example program in {K&R}). Environments that generate an
unreasonably large executable for this trivial test or which
require a {hairy} compiler-linker invocation to generate it are
considered to {lose} (see {X}). 3. Greeting uttered by a
hacker making an entrance or requesting information from anyone
present. "Hello, world! Is the {VAX} back up yet?"
hex: n. 1. Short for {{hexadecimal}}, base 16. 2. A 6-pack
of anything (compare {quad}, sense 2). Neither usage has
anything to do with {magic} or {black art}, though the pun is
appreciated and occasionally used by hackers. True story: As a
joke, some hackers once offered some surplus ICs for sale to be
worn as protective amulets against hostile magic. The chips were,
of course, hex inverters.
hexadecimal:: n. Base 16. Coined in the early 1960s to
replace earlier `sexadecimal', which was too racy and amusing
for stuffy IBM, and later adopted by the rest of the industry.
Actually, neither term is etymologically pure. If we take
`binary' to be paradigmatic, the most etymologically correct
term for base 10, for example, is `denary', which comes from
`deni' (ten at a time, ten each), a Latin `distributive'
number; the corresponding term for base-16 would be something like
`sendenary'. `Decimal' is from an ordinal number; the
corresponding prefix for 6 would imply something like
`sextidecimal'. The `sexa-' prefix is Latin but incorrect in
this context, and `hexa-' is Greek. The word `octal' is
similarly incorrect; a correct form would be `octaval' (to go
with decimal), or `octonary' (to go with binary). If anyone ever
implements a base-3 computer, computer scientists will be faced
with the unprecedented dilemma of a choice between two
*correct* forms; both `ternary' and `trinary' have a
claim to this throne.
hexit: /hek'sit/ n. A hexadecimal digit (0--9, and A--F or
a--f). Used by people who claim that there are only *ten*
digits, dammit; sixteen-fingered human beings are rather rare,
despite what some keyboard designs might seem to imply (see
{space-cadet keyboard}).
HHOK: See {ha ha only serious}.
HHOS: See {ha ha only serious}.
hidden flag: n. [scientific computation] An extra option
added to a routine without changing the calling sequence. For
example, instead of adding an explicit input variable to instruct a
routine to give extra diagnostic output, the programmer might just
add a test for some otherwise meaningless feature of the existing
inputs, such as a negative mass. The use of hidden flags can make
a program very hard to debug and understand, but is all too common
wherever programs are hacked on in a hurry.
high bit: n. [from `high-order bit'] 1. The most
significant bit in a byte. 2. By extension, the most significant
part of something other than a data byte: "Spare me the whole
{saga}, just give me the high bit." See also {meta bit},
{hobbit}, {dread high-bit disease}, and compare the
mainstream slang `bottom line'.
high moby: /hi:' mohb'ee/ n. The high half of a 512K
{PDP-10}'s physical address space; the other half was of course
the low moby. This usage has been generalized in a way that has
outlasted the {PDP-10}; for example, at the 1990 Washington D.C.
Area Science Fiction Conclave (Disclave), when a miscommunication
resulted in two separate wakes being held in commemoration of the
shutdown of MIT's last {{ITS}} machines, the one on the upper
floor was dubbed the `high moby' and the other the `low moby'.
All parties involved {grok}ked this instantly. See {moby}.
highly: adv. [scientific computation] The preferred modifier
for overstating an understatement. As in: `highly nonoptimal',
the worst possible way to do something; `highly nontrivial',
either impossible or requiring a major research project; `highly
nonlinear', completely erratic and unpredictable; `highly
nontechnical', drivel written for {luser}s, oversimplified to
the point of being misleading or incorrect (compare {drool-proof
paper}). In other computing cultures, postfixing of {in the
extreme} might be preferred.
hing: // n. [IRC] Fortuitous typo for `hint', now in
wide intentional use among players of {initgame}. Compare
{newsfroup}, {filk}.
hirsute: adj. Occasionally used humorously as a synonym for
{hairy}.
HLL: /H-L-L/ n. [High-Level Language (as opposed to
assembler)] Found primarily in email and news rather than speech.
Rarely, the variants `VHLL' and `MLL' are found. VHLL stands for
`Very-High-Level Language' and is used to describe a
{bondage-and-discipline language} that the speaker happens to
like; Prolog and Backus's FP are often called VHLLs. `MLL' stands
for `Medium-Level Language' and is sometimes used half-jokingly to
describe {C}, alluding to its `structured-assembler' image.
See also {languages of choice}.
hobbit: n. 1. The High Order Bit of a byte; same as the
{meta bit} or {high bit}. 2. The non-ITS name of
vad@ai.mit.edu (*Hobbit*), master of lasers.
hog: n.,vt. 1. Favored term to describe programs or hardware
that seem to eat far more than their share of a system's resources,
esp. those which noticeably degrade interactive response.
*Not* used of programs that are simply extremely large or
complex or that are merely painfully slow themselves (see {pig,
run like a}). More often than not encountered in qualified forms,
e.g., `memory hog', `core hog', `hog the processor', `hog
the disk'. "A controller that never gives up the I/O bus gets
killed after the bus-hog timer expires." 2. Also said of
*people* who use more than their fair share of resources
(particularly disk, where it seems that 10% of the people use 90%
of the disk, no matter how big the disk is or how many people use
it). Of course, once disk hogs fill up one filesystem, they
typically find some other new one to infect, claiming to the
sysadmin that they have an important new project to complete.
hole: n. A region in an otherwise {flat} entity which is
not actually present. For example, some UNIX filesystems can store
large files with holes so that unused regions of the file are never
actually stored on disk. (In techspeak, these are referred to as
`sparse' files.) As another example, the region of memory in IBM
PCs reserved for memory-mapped I/O devices which may not actually
be present is called `the I/O hole', since memory-management
systems must skip over this area when filling user requests for
memory.
holy wars: [from {Usenet}, but may predate it]
n. {flame war}s over {religious issues}. The paper by Danny
Cohen that popularized the terms {big-endian} and
{little-endian} in connection with the LSB-first/MSB-first
controversy was entitled "On Holy Wars and a Plea for Peace".
Other perennial Holy Wars have included {EMACS} vs. {vi},
my personal computer vs. everyone else's personal computer,
{{ITS}} vs. {{UNIX}}, {{UNIX}} vs. {VMS}, {BSD} UNIX
vs. {USG UNIX}, {C} vs. {{Pascal}}, {C} vs.
FORTRAN, etc., ad nauseam. The characteristic that distinguishes
holy wars from normal technical disputes is that in a holy war
most of the participants spend their time trying to pass off
personal value choices and cultural attachments as objective
technical evaluations. See also {theology}.
home box: n. A hacker's personal machine, especially one he
or she owns. "Yeah? Well, *my* home box runs a full 4.2
BSD, so there!"
home machine: n. 1. Syn. {home box}. 2. The machine that
receives your email. These senses might be distinct, for example,
for a hacker who owns one computer at home, but reads email at
work.
hook: n. A software or hardware feature included in order to
simplify later additions or changes by a user. For example, a
simple program that prints numbers might always print them in base
10, but a more flexible version would let a variable determine what
base to use; setting the variable to 5 would make the program print
numbers in base 5. The variable is a simple hook. An even more
flexible program might examine the variable and treat a value of 16
or less as the base to use, but treat any other number as the
address of a user-supplied routine for printing a number. This is
a {hairy} but powerful hook; one can then write a routine to
print numbers as Roman numerals, say, or as Hebrew characters, and
plug it into the program through the hook. Often the difference
between a good program and a superb one is that the latter has
useful hooks in judiciously chosen places. Both may do the
original job about equally well, but the one with the hooks is much
more flexible for future expansion of capabilities ({EMACS}, for
example, is *all* hooks). The term `user exit' is
synonymous but much more formal and less hackish.
hop: 1. n. One file transmission in a series required to get
a file from point A to point B on a store-and-forward network. On
such networks (including {UUCPNET} and {FidoNet}), an
important inter-machine metric is the number of hops in the
shortest path between them, which can be more significant than
their geographical separation. See {bang path}. 2. v. To log in
to a remote machine, esp. via rlogin or telnet. "I'll hop over to
foovax to FTP that."
hose: 1. vt. To make non-functional or greatly degraded in
performance. "That big ray-tracing program really hoses the
system." See {hosed}. 2. n. A narrow channel through which
data flows under pressure. Generally denotes data paths that
represent performance bottlenecks. 3. n. Cabling, especially thick
Ethernet cable. This is sometimes called `bit hose' or
`hosery' (play on `hosiery') or `etherhose'. See also
{washing machine}.
hosed: adj. Same as {down}. Used primarily by UNIX
hackers. Humorous: also implies a condition thought to be
relatively easy to reverse. Probably derived from the Canadian
slang `hoser' popularized by the Bob and Doug Mackenzie skits on
SCTV, but this usage predated SCTV by years in hackerdom (it was
certainly already live at CMU in the 1970s). See {hose}. It is
also widely used of people in the mainstream sense of `in an
extremely unfortunate situation'.
Once upon a time, a Cray that had been experiencing periodic
difficulties crashed, and it was announced to have been hosed.
It was discovered that the crash was due to the disconnection of
some coolant hoses. The problem was corrected, and users were then
assured that everything was OK because the system had been rehosed.
See also {dehose}.
hot chat: n. Sexually explicit one-on-one chat. See
{teledildonics}.
hot spot: n. 1. [primarily used by C/UNIX programmers, but
spreading] It is received wisdom that in most programs, less than
10% of the code eats 90% of the execution time; if one were to
graph instruction visits versus code addresses, one would typically
see a few huge spikes amidst a lot of low-level noise. Such spikes
are called `hot spots' and are good candidates for heavy
optimization or {hand-hacking}. The term is especially used of
tight loops and recursions in the code's central algorithm, as
opposed to (say) initial set-up costs or large but infrequent I/O
operations. See {tune}, {bum}, {hand-hacking}. 2. The
active location of a cursor on a bit-map display. "Put the
mouse's hot spot on the `ON' widget and click the left button."
3. A screen region that is sensitive to mouse clicks, which trigger
some action. Hypertext help screens are an example, in which a hot
spot exists in the vicinity of any word for which additional
material is available. 4. In a massively parallel computer with
shared memory, the one location that all 10,000 processors are
trying to read or write at once (perhaps because they are all doing
a {busy-wait} on the same lock). 5. More generally, any place
in a hardware design that turns into a performance bottleneck due
to resource contention.
house wizard: n. [prob. from ad-agency tradetalk, `house
freak'] A hacker occupying a technical-specialist, R&D, or systems
position at a commercial shop. A really effective house wizard can
have influence out of all proportion to his/her ostensible rank and
still not have to wear a suit. Used esp. of UNIX wizards. The
term `house guru' is equivalent.
HP-SUX: /H-P suhks/ n. Unflattering hackerism for HP-UX,
Hewlett-Packard's UNIX port, which features some truly unique
bogosities in the filesystem internals and elsewhere (these
occasionally create portability problems). HP-UX is often referred
to as `hockey-pux' inside HP, and one respondent claims that the
proper pronunciation is /H-P ukkkhhhh/ as though one were about
to spit. Another such alternate spelling and pronunciation is
"H-PUX" /H-puhks/. Hackers at HP/Apollo (the former Apollo
Computers which was swallowed by HP in 1989) have been heard to
complain that Mr. Packard should have pushed to have his name
first, if for no other reason than the greater eloquence of the
resulting acronym. Compare {AIDX}, {buglix}. See also
{Nominal Semidestructor}, {Telerat}, {Open DeathTrap},
{ScumOS}, {sun-stools}.
huff: v. To compress data using a Huffman code. Various
programs that use such methods have been called `HUFF' or some
variant thereof. Oppose {puff}. Compare {crunch},
{compress}.
humma: // excl. A filler word used on various `chat'
and `talk' programs when you had nothing to say but felt that it
was important to say something. The word apparently originated (at
least with this definition) on the MECC Timeshare System (MTS, a
now-defunct educational time-sharing system running in Minnesota
during the 1970s and the early 1980s) but was later sighted on
early UNIX systems. Compare the U.K's {wibble}.
Humor, Hacker:: n. A distinctive style of shared
intellectual humor found among hackers, having the following marked
characteristics:
1. Fascination with form-vs.-content jokes, paradoxes, and humor
having to do with confusion of metalevels (see {meta}). One way
to make a hacker laugh: hold a red index card in front of him/her
with "GREEN" written on it, or vice-versa (note, however, that
this is funny only the first time).
2. Elaborate deadpan parodies of large intellectual constructs,
such as specifications (see {write-only memory}), standards
documents, language descriptions (see {INTERCAL}), and even
entire scientific theories (see {quantum bogodynamics},
{computron}).
3. Jokes that involve screwily precise reasoning from bizarre,
ludicrous, or just grossly counter-intuitive premises.
4. Fascination with puns and wordplay.
5. A fondness for apparently mindless humor with subversive
currents of intelligence in it -- for example, old Warner Brothers
and Rocky & Bullwinkle cartoons, the Marx brothers, the early
B-52s, and Monty Python's Flying Circus. Humor that combines this
trait with elements of high camp and slapstick is especially
favored.
6. References to the symbol-object antinomies and associated ideas
in Zen Buddhism and (less often) Taoism. See {has the X nature},
{Discordianism}, {zen}, {ha ha only serious}, {AI koans}.
See also {filk}, {retrocomputing}, and {A Portrait of J.
Random Hacker} in Appendix B. If you have an itchy feeling that
all 6 of these traits are really aspects of one thing that is
incredibly difficult to talk about exactly, you are (a) correct and
(b) responding like a hacker. These traits are also recognizable
(though in a less marked form) throughout {{science-fiction
fandom}}.
hung: adj. [from `hung up'] Equivalent to {wedged}, but
more common at UNIX/C sites. Not generally used of people.
Syn. with {locked up}, {wedged}; compare {hosed}. See
also {hang}. A hung state is distinguished from {crash}ed or
{down}, where the program or system is also unusable but because
it is not running rather than because it is waiting for something.
However, the recovery from both situations is often the same.
hungry puppy: n. Syn. {slopsucker}.
hungus: /huhng'g*s/ adj. [perhaps related to slang
`humongous'] Large, unwieldy, usually unmanageable. "TCP is a
hungus piece of code." "This is a hungus set of modifications."
hyperspace: /hi:'per-spays/ n. A memory location that is
*far* away from where the program counter should be pointing,
often inaccessible because it is not even mapped in. "Another
core dump -- looks like the program jumped off to hyperspace
somehow." (Compare {jump off into never-never land}.) This
usage is from the SF notion of a spaceship jumping `into
hyperspace', that is, taking a shortcut through higher-dimensional
space -- in other words, bypassing this universe. The variant
`east hyperspace' is recorded among CMU and Bliss hackers.
hysterical reasons: n. (also `hysterical raisins') A
variant on the stock phrase "for historical reasons", indicating
specifically that something must be done in some stupid way for
backwards compatibility, and moreover that the feature it must be
compatible with was the result of a bad design in the first place.
"All IBM PC video adapters have to support MDA text mode for
hysterical reasons." Compare {bug-for-bug compatible}.